package listbyorder.access001_100.test88;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/5 10:55
 */
public class Solution2 {

    // 神仙操作一
    // 首先将nums1里面的数组全部移动到后面
    // 然后进行指针遍历
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        for (int i = 1; i <= m; i++) {
            nums1[m + n - i] = nums1[m - i];
        }
        int c1 = n;   // nums1从n的位置开始遍历
        int c2 = 0;
        int ai = 0;
        while (c1 < n + m && c2 < n) {
            if (nums1[c1] > nums2[c2]) {
                nums1[ai++] = nums2[c2++];
            } else {
                nums1[ai++] = nums1[c1++];
            }
        }
        while (c1 < m + n) {
            nums1[ai++] = nums1[c1++];
        }
        while (c2 < n) {
            nums1[ai++] = nums2[c2++];
        }
    }
}
